# Generated from EasyCGRALexer.g4 by ANTLR 4.13.2
from antlr4 import *
from io import StringIO
import sys
if sys.version_info[1] > 5:
    from typing import TextIO
else:
    from typing.io import TextIO


def serializedATN():
    return [
        4,0,56,570,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,
        2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,
        13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,
        19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,
        26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,
        32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,
        39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,
        45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,
        52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,
        58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,1,0,1,0,1,0,1,0,1,1,1,
        1,1,1,1,1,1,1,1,2,1,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,4,1,4,1,4,1,
        4,1,5,1,5,1,5,1,5,1,6,1,6,1,6,1,6,1,7,1,7,1,7,1,7,1,8,1,8,1,8,1,
        8,1,9,1,9,1,9,1,9,1,10,1,10,1,10,1,11,1,11,1,11,1,11,1,12,1,12,1,
        12,1,12,1,13,1,13,1,13,1,13,1,14,1,14,1,14,1,14,1,14,1,15,1,15,1,
        15,1,15,1,15,1,16,1,16,1,16,1,16,1,16,1,17,1,17,1,17,1,17,1,17,1,
        18,1,18,1,18,1,18,1,18,1,19,1,19,1,19,1,19,1,20,1,20,1,20,1,20,1,
        21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,21,1,
        21,1,22,1,22,1,22,1,22,1,22,1,23,1,23,1,23,1,23,1,23,1,23,1,24,1,
        24,1,24,1,24,1,24,1,24,1,25,1,25,1,25,1,26,1,26,1,26,1,27,1,27,1,
        27,1,27,1,28,1,28,1,28,1,28,1,29,1,29,1,29,3,29,266,8,29,1,29,4,
        29,269,8,29,11,29,12,29,270,1,29,3,29,274,8,29,3,29,276,8,29,1,29,
        3,29,279,8,29,1,30,1,30,1,30,1,30,5,30,285,8,30,10,30,12,30,288,
        9,30,1,30,3,30,291,8,30,1,30,3,30,294,8,30,1,31,1,31,5,31,298,8,
        31,10,31,12,31,301,9,31,1,31,1,31,5,31,305,8,31,10,31,12,31,308,
        9,31,1,31,3,31,311,8,31,1,31,3,31,314,8,31,1,32,1,32,1,32,1,32,5,
        32,320,8,32,10,32,12,32,323,9,32,1,32,3,32,326,8,32,1,32,3,32,329,
        8,32,1,33,1,33,1,33,3,33,334,8,33,1,33,1,33,3,33,338,8,33,1,33,3,
        33,341,8,33,1,33,3,33,344,8,33,1,33,1,33,1,33,3,33,349,8,33,1,33,
        3,33,352,8,33,3,33,354,8,33,1,34,1,34,1,34,1,34,3,34,360,8,34,1,
        34,3,34,363,8,34,1,34,1,34,3,34,367,8,34,1,34,1,34,3,34,371,8,34,
        1,34,1,34,3,34,375,8,34,1,35,1,35,1,35,1,35,1,35,1,35,1,35,1,35,
        1,35,3,35,386,8,35,1,36,1,36,1,36,3,36,391,8,36,1,36,1,36,1,37,1,
        37,1,37,5,37,398,8,37,10,37,12,37,401,9,37,1,37,1,37,1,38,1,38,1,
        38,1,38,1,38,5,38,410,8,38,10,38,12,38,413,9,38,1,38,1,38,1,38,5,
        38,418,8,38,10,38,12,38,421,9,38,1,38,1,38,1,38,1,38,1,39,1,39,1,
        39,1,39,1,39,1,40,1,40,1,41,1,41,1,42,1,42,1,43,1,43,1,44,1,44,1,
        45,1,45,1,46,1,46,1,47,1,47,1,48,1,48,1,49,1,49,1,50,1,50,1,51,1,
        51,1,52,4,52,457,8,52,11,52,12,52,458,1,52,1,52,1,53,1,53,1,53,1,
        53,5,53,467,8,53,10,53,12,53,470,9,53,1,53,1,53,1,53,1,53,1,53,1,
        54,1,54,1,54,1,54,5,54,481,8,54,10,54,12,54,484,9,54,1,54,1,54,1,
        55,1,55,5,55,490,8,55,10,55,12,55,493,9,55,1,56,1,56,3,56,497,8,
        56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,1,57,3,57,507,8,57,1,57,1,
        57,1,57,1,57,1,57,1,57,1,57,3,57,516,8,57,1,57,3,57,519,8,57,1,57,
        3,57,522,8,57,1,57,1,57,1,57,4,57,527,8,57,11,57,12,57,528,1,57,
        1,57,1,57,1,57,1,57,3,57,536,8,57,1,58,1,58,1,58,5,58,541,8,58,10,
        58,12,58,544,9,58,1,58,3,58,547,8,58,1,59,1,59,1,60,1,60,5,60,553,
        8,60,10,60,12,60,556,9,60,1,60,3,60,559,8,60,1,61,1,61,3,61,563,
        8,61,1,62,1,62,1,62,1,62,3,62,569,8,62,2,419,468,0,63,1,1,3,2,5,
        3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,
        31,16,33,17,35,18,37,19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,
        53,27,55,28,57,29,59,30,61,31,63,32,65,33,67,34,69,35,71,36,73,37,
        75,38,77,39,79,40,81,41,83,42,85,43,87,44,89,45,91,46,93,47,95,48,
        97,49,99,50,101,51,103,52,105,53,107,54,109,55,111,56,113,0,115,
        0,117,0,119,0,121,0,123,0,125,0,1,0,27,1,0,49,57,2,0,76,76,108,108,
        2,0,88,88,120,120,3,0,48,57,65,70,97,102,4,0,48,57,65,70,95,95,97,
        102,1,0,48,55,2,0,48,55,95,95,2,0,66,66,98,98,1,0,48,49,2,0,48,49,
        95,95,4,0,68,68,70,70,100,100,102,102,2,0,80,80,112,112,2,0,43,43,
        45,45,4,0,10,10,13,13,39,39,92,92,4,0,10,10,13,13,34,34,92,92,2,
        0,9,9,32,32,2,0,10,10,13,13,3,0,9,10,12,13,32,32,2,0,69,69,101,101,
        8,0,34,34,39,39,92,92,98,98,102,102,110,110,114,114,116,116,1,0,
        48,51,1,0,48,57,2,0,48,57,95,95,4,0,36,36,65,90,95,95,97,122,2,0,
        0,127,55296,56319,1,0,55296,56319,1,0,56320,57343,616,0,1,1,0,0,
        0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,
        13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,
        23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,
        33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,
        43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,
        53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,
        63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,
        73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,
        83,1,0,0,0,0,85,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,
        93,1,0,0,0,0,95,1,0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,
        0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0,0,109,1,0,0,0,0,111,1,
        0,0,0,1,127,1,0,0,0,3,131,1,0,0,0,5,136,1,0,0,0,7,140,1,0,0,0,9,
        145,1,0,0,0,11,149,1,0,0,0,13,153,1,0,0,0,15,157,1,0,0,0,17,161,
        1,0,0,0,19,165,1,0,0,0,21,169,1,0,0,0,23,172,1,0,0,0,25,176,1,0,
        0,0,27,180,1,0,0,0,29,184,1,0,0,0,31,189,1,0,0,0,33,194,1,0,0,0,
        35,199,1,0,0,0,37,204,1,0,0,0,39,209,1,0,0,0,41,213,1,0,0,0,43,217,
        1,0,0,0,45,231,1,0,0,0,47,236,1,0,0,0,49,242,1,0,0,0,51,248,1,0,
        0,0,53,251,1,0,0,0,55,254,1,0,0,0,57,258,1,0,0,0,59,275,1,0,0,0,
        61,280,1,0,0,0,63,295,1,0,0,0,65,315,1,0,0,0,67,353,1,0,0,0,69,355,
        1,0,0,0,71,385,1,0,0,0,73,387,1,0,0,0,75,394,1,0,0,0,77,404,1,0,
        0,0,79,426,1,0,0,0,81,431,1,0,0,0,83,433,1,0,0,0,85,435,1,0,0,0,
        87,437,1,0,0,0,89,439,1,0,0,0,91,441,1,0,0,0,93,443,1,0,0,0,95,445,
        1,0,0,0,97,447,1,0,0,0,99,449,1,0,0,0,101,451,1,0,0,0,103,453,1,
        0,0,0,105,456,1,0,0,0,107,462,1,0,0,0,109,476,1,0,0,0,111,487,1,
        0,0,0,113,494,1,0,0,0,115,535,1,0,0,0,117,537,1,0,0,0,119,548,1,
        0,0,0,121,550,1,0,0,0,123,562,1,0,0,0,125,568,1,0,0,0,127,128,5,
        65,0,0,128,129,5,68,0,0,129,130,5,68,0,0,130,2,1,0,0,0,131,132,5,
        65,0,0,132,133,5,68,0,0,133,134,5,68,0,0,134,135,5,73,0,0,135,4,
        1,0,0,0,136,137,5,83,0,0,137,138,5,85,0,0,138,139,5,66,0,0,139,6,
        1,0,0,0,140,141,5,83,0,0,141,142,5,85,0,0,142,143,5,66,0,0,143,144,
        5,73,0,0,144,8,1,0,0,0,145,146,5,77,0,0,146,147,5,85,0,0,147,148,
        5,76,0,0,148,10,1,0,0,0,149,150,5,68,0,0,150,151,5,73,0,0,151,152,
        5,86,0,0,152,12,1,0,0,0,153,154,5,77,0,0,154,155,5,65,0,0,155,156,
        5,67,0,0,156,14,1,0,0,0,157,158,5,73,0,0,158,159,5,78,0,0,159,160,
        5,67,0,0,160,16,1,0,0,0,161,162,5,76,0,0,162,163,5,76,0,0,163,164,
        5,83,0,0,164,18,1,0,0,0,165,166,5,76,0,0,166,167,5,82,0,0,167,168,
        5,83,0,0,168,20,1,0,0,0,169,170,5,79,0,0,170,171,5,82,0,0,171,22,
        1,0,0,0,172,173,5,65,0,0,173,174,5,78,0,0,174,175,5,68,0,0,175,24,
        1,0,0,0,176,177,5,88,0,0,177,178,5,79,0,0,178,179,5,82,0,0,179,26,
        1,0,0,0,180,181,5,78,0,0,181,182,5,79,0,0,182,183,5,84,0,0,183,28,
        1,0,0,0,184,185,5,70,0,0,185,186,5,65,0,0,186,187,5,68,0,0,187,188,
        5,68,0,0,188,30,1,0,0,0,189,190,5,70,0,0,190,191,5,83,0,0,191,192,
        5,85,0,0,192,193,5,66,0,0,193,32,1,0,0,0,194,195,5,70,0,0,195,196,
        5,77,0,0,196,197,5,85,0,0,197,198,5,76,0,0,198,34,1,0,0,0,199,200,
        5,70,0,0,200,201,5,68,0,0,201,202,5,73,0,0,202,203,5,86,0,0,203,
        36,1,0,0,0,204,205,5,70,0,0,205,206,5,77,0,0,206,207,5,65,0,0,207,
        208,5,67,0,0,208,38,1,0,0,0,209,210,5,66,0,0,210,211,5,69,0,0,211,
        212,5,81,0,0,212,40,1,0,0,0,213,214,5,77,0,0,214,215,5,79,0,0,215,
        216,5,86,0,0,216,42,1,0,0,0,217,218,5,77,0,0,218,219,5,85,0,0,219,
        220,5,76,0,0,220,221,5,95,0,0,221,222,5,67,0,0,222,223,5,79,0,0,
        223,224,5,78,0,0,224,225,5,83,0,0,225,226,5,84,0,0,226,227,5,95,
        0,0,227,228,5,65,0,0,228,229,5,68,0,0,229,230,5,68,0,0,230,44,1,
        0,0,0,231,232,5,76,0,0,232,233,5,79,0,0,233,234,5,65,0,0,234,235,
        5,68,0,0,235,46,1,0,0,0,236,237,5,83,0,0,237,238,5,84,0,0,238,239,
        5,79,0,0,239,240,5,82,0,0,240,241,5,69,0,0,241,48,1,0,0,0,242,243,
        5,69,0,0,243,244,5,110,0,0,244,245,5,116,0,0,245,246,5,114,0,0,246,
        247,5,121,0,0,247,50,1,0,0,0,248,249,5,61,0,0,249,250,5,62,0,0,250,
        52,1,0,0,0,251,252,5,45,0,0,252,253,5,62,0,0,253,54,1,0,0,0,254,
        255,5,73,0,0,255,256,5,77,0,0,256,257,5,77,0,0,257,56,1,0,0,0,258,
        259,5,77,0,0,259,260,5,69,0,0,260,261,5,77,0,0,261,58,1,0,0,0,262,
        276,5,48,0,0,263,273,7,0,0,0,264,266,3,121,60,0,265,264,1,0,0,0,
        265,266,1,0,0,0,266,274,1,0,0,0,267,269,5,95,0,0,268,267,1,0,0,0,
        269,270,1,0,0,0,270,268,1,0,0,0,270,271,1,0,0,0,271,272,1,0,0,0,
        272,274,3,121,60,0,273,265,1,0,0,0,273,268,1,0,0,0,274,276,1,0,0,
        0,275,262,1,0,0,0,275,263,1,0,0,0,276,278,1,0,0,0,277,279,7,1,0,
        0,278,277,1,0,0,0,278,279,1,0,0,0,279,60,1,0,0,0,280,281,5,48,0,
        0,281,282,7,2,0,0,282,290,7,3,0,0,283,285,7,4,0,0,284,283,1,0,0,
        0,285,288,1,0,0,0,286,284,1,0,0,0,286,287,1,0,0,0,287,289,1,0,0,
        0,288,286,1,0,0,0,289,291,7,3,0,0,290,286,1,0,0,0,290,291,1,0,0,
        0,291,293,1,0,0,0,292,294,7,1,0,0,293,292,1,0,0,0,293,294,1,0,0,
        0,294,62,1,0,0,0,295,299,5,48,0,0,296,298,5,95,0,0,297,296,1,0,0,
        0,298,301,1,0,0,0,299,297,1,0,0,0,299,300,1,0,0,0,300,302,1,0,0,
        0,301,299,1,0,0,0,302,310,7,5,0,0,303,305,7,6,0,0,304,303,1,0,0,
        0,305,308,1,0,0,0,306,304,1,0,0,0,306,307,1,0,0,0,307,309,1,0,0,
        0,308,306,1,0,0,0,309,311,7,5,0,0,310,306,1,0,0,0,310,311,1,0,0,
        0,311,313,1,0,0,0,312,314,7,1,0,0,313,312,1,0,0,0,313,314,1,0,0,
        0,314,64,1,0,0,0,315,316,5,48,0,0,316,317,7,7,0,0,317,325,7,8,0,
        0,318,320,7,9,0,0,319,318,1,0,0,0,320,323,1,0,0,0,321,319,1,0,0,
        0,321,322,1,0,0,0,322,324,1,0,0,0,323,321,1,0,0,0,324,326,7,8,0,
        0,325,321,1,0,0,0,325,326,1,0,0,0,326,328,1,0,0,0,327,329,7,1,0,
        0,328,327,1,0,0,0,328,329,1,0,0,0,329,66,1,0,0,0,330,331,3,121,60,
        0,331,333,5,46,0,0,332,334,3,121,60,0,333,332,1,0,0,0,333,334,1,
        0,0,0,334,338,1,0,0,0,335,336,5,46,0,0,336,338,3,121,60,0,337,330,
        1,0,0,0,337,335,1,0,0,0,338,340,1,0,0,0,339,341,3,113,56,0,340,339,
        1,0,0,0,340,341,1,0,0,0,341,343,1,0,0,0,342,344,7,10,0,0,343,342,
        1,0,0,0,343,344,1,0,0,0,344,354,1,0,0,0,345,351,3,121,60,0,346,348,
        3,113,56,0,347,349,7,10,0,0,348,347,1,0,0,0,348,349,1,0,0,0,349,
        352,1,0,0,0,350,352,7,10,0,0,351,346,1,0,0,0,351,350,1,0,0,0,352,
        354,1,0,0,0,353,337,1,0,0,0,353,345,1,0,0,0,354,68,1,0,0,0,355,356,
        5,48,0,0,356,366,7,2,0,0,357,359,3,117,58,0,358,360,5,46,0,0,359,
        358,1,0,0,0,359,360,1,0,0,0,360,367,1,0,0,0,361,363,3,117,58,0,362,
        361,1,0,0,0,362,363,1,0,0,0,363,364,1,0,0,0,364,365,5,46,0,0,365,
        367,3,117,58,0,366,357,1,0,0,0,366,362,1,0,0,0,367,368,1,0,0,0,368,
        370,7,11,0,0,369,371,7,12,0,0,370,369,1,0,0,0,370,371,1,0,0,0,371,
        372,1,0,0,0,372,374,3,121,60,0,373,375,7,10,0,0,374,373,1,0,0,0,
        374,375,1,0,0,0,375,70,1,0,0,0,376,377,5,116,0,0,377,378,5,114,0,
        0,378,379,5,117,0,0,379,386,5,101,0,0,380,381,5,102,0,0,381,382,
        5,97,0,0,382,383,5,108,0,0,383,384,5,115,0,0,384,386,5,101,0,0,385,
        376,1,0,0,0,385,380,1,0,0,0,386,72,1,0,0,0,387,390,5,39,0,0,388,
        391,8,13,0,0,389,391,3,115,57,0,390,388,1,0,0,0,390,389,1,0,0,0,
        391,392,1,0,0,0,392,393,5,39,0,0,393,74,1,0,0,0,394,399,5,34,0,0,
        395,398,8,14,0,0,396,398,3,115,57,0,397,395,1,0,0,0,397,396,1,0,
        0,0,398,401,1,0,0,0,399,397,1,0,0,0,399,400,1,0,0,0,400,402,1,0,
        0,0,401,399,1,0,0,0,402,403,5,34,0,0,403,76,1,0,0,0,404,405,5,34,
        0,0,405,406,5,34,0,0,406,407,5,34,0,0,407,411,1,0,0,0,408,410,7,
        15,0,0,409,408,1,0,0,0,410,413,1,0,0,0,411,409,1,0,0,0,411,412,1,
        0,0,0,412,414,1,0,0,0,413,411,1,0,0,0,414,419,7,16,0,0,415,418,9,
        0,0,0,416,418,3,115,57,0,417,415,1,0,0,0,417,416,1,0,0,0,418,421,
        1,0,0,0,419,420,1,0,0,0,419,417,1,0,0,0,420,422,1,0,0,0,421,419,
        1,0,0,0,422,423,5,34,0,0,423,424,5,34,0,0,424,425,5,34,0,0,425,78,
        1,0,0,0,426,427,5,110,0,0,427,428,5,117,0,0,428,429,5,108,0,0,429,
        430,5,108,0,0,430,80,1,0,0,0,431,432,5,40,0,0,432,82,1,0,0,0,433,
        434,5,41,0,0,434,84,1,0,0,0,435,436,5,123,0,0,436,86,1,0,0,0,437,
        438,5,125,0,0,438,88,1,0,0,0,439,440,5,91,0,0,440,90,1,0,0,0,441,
        442,5,93,0,0,442,92,1,0,0,0,443,444,5,59,0,0,444,94,1,0,0,0,445,
        446,5,44,0,0,446,96,1,0,0,0,447,448,5,46,0,0,448,98,1,0,0,0,449,
        450,5,58,0,0,450,100,1,0,0,0,451,452,5,33,0,0,452,102,1,0,0,0,453,
        454,5,94,0,0,454,104,1,0,0,0,455,457,7,17,0,0,456,455,1,0,0,0,457,
        458,1,0,0,0,458,456,1,0,0,0,458,459,1,0,0,0,459,460,1,0,0,0,460,
        461,6,52,0,0,461,106,1,0,0,0,462,463,5,47,0,0,463,464,5,42,0,0,464,
        468,1,0,0,0,465,467,9,0,0,0,466,465,1,0,0,0,467,470,1,0,0,0,468,
        469,1,0,0,0,468,466,1,0,0,0,469,471,1,0,0,0,470,468,1,0,0,0,471,
        472,5,42,0,0,472,473,5,47,0,0,473,474,1,0,0,0,474,475,6,53,0,0,475,
        108,1,0,0,0,476,477,5,47,0,0,477,478,5,47,0,0,478,482,1,0,0,0,479,
        481,8,16,0,0,480,479,1,0,0,0,481,484,1,0,0,0,482,480,1,0,0,0,482,
        483,1,0,0,0,483,485,1,0,0,0,484,482,1,0,0,0,485,486,6,54,0,0,486,
        110,1,0,0,0,487,491,3,125,62,0,488,490,3,123,61,0,489,488,1,0,0,
        0,490,493,1,0,0,0,491,489,1,0,0,0,491,492,1,0,0,0,492,112,1,0,0,
        0,493,491,1,0,0,0,494,496,7,18,0,0,495,497,7,12,0,0,496,495,1,0,
        0,0,496,497,1,0,0,0,497,498,1,0,0,0,498,499,3,121,60,0,499,114,1,
        0,0,0,500,506,5,92,0,0,501,502,5,117,0,0,502,503,5,48,0,0,503,504,
        5,48,0,0,504,505,5,53,0,0,505,507,5,99,0,0,506,501,1,0,0,0,506,507,
        1,0,0,0,507,508,1,0,0,0,508,536,7,19,0,0,509,515,5,92,0,0,510,511,
        5,117,0,0,511,512,5,48,0,0,512,513,5,48,0,0,513,514,5,53,0,0,514,
        516,5,99,0,0,515,510,1,0,0,0,515,516,1,0,0,0,516,521,1,0,0,0,517,
        519,7,20,0,0,518,517,1,0,0,0,518,519,1,0,0,0,519,520,1,0,0,0,520,
        522,7,5,0,0,521,518,1,0,0,0,521,522,1,0,0,0,522,523,1,0,0,0,523,
        536,7,5,0,0,524,526,5,92,0,0,525,527,5,117,0,0,526,525,1,0,0,0,527,
        528,1,0,0,0,528,526,1,0,0,0,528,529,1,0,0,0,529,530,1,0,0,0,530,
        531,3,119,59,0,531,532,3,119,59,0,532,533,3,119,59,0,533,534,3,119,
        59,0,534,536,1,0,0,0,535,500,1,0,0,0,535,509,1,0,0,0,535,524,1,0,
        0,0,536,116,1,0,0,0,537,546,3,119,59,0,538,541,3,119,59,0,539,541,
        5,95,0,0,540,538,1,0,0,0,540,539,1,0,0,0,541,544,1,0,0,0,542,540,
        1,0,0,0,542,543,1,0,0,0,543,545,1,0,0,0,544,542,1,0,0,0,545,547,
        3,119,59,0,546,542,1,0,0,0,546,547,1,0,0,0,547,118,1,0,0,0,548,549,
        7,3,0,0,549,120,1,0,0,0,550,558,7,21,0,0,551,553,7,22,0,0,552,551,
        1,0,0,0,553,556,1,0,0,0,554,552,1,0,0,0,554,555,1,0,0,0,555,557,
        1,0,0,0,556,554,1,0,0,0,557,559,7,21,0,0,558,554,1,0,0,0,558,559,
        1,0,0,0,559,122,1,0,0,0,560,563,3,125,62,0,561,563,7,21,0,0,562,
        560,1,0,0,0,562,561,1,0,0,0,563,124,1,0,0,0,564,569,7,23,0,0,565,
        569,8,24,0,0,566,567,7,25,0,0,567,569,7,26,0,0,568,564,1,0,0,0,568,
        565,1,0,0,0,568,566,1,0,0,0,569,126,1,0,0,0,53,0,265,270,273,275,
        278,286,290,293,299,306,310,313,321,325,328,333,337,340,343,348,
        351,353,359,362,366,370,374,385,390,397,399,411,417,419,458,468,
        482,491,496,506,515,518,521,528,535,540,542,546,554,558,562,568,
        1,0,1,0
    ]

class EasyCGRALexer(Lexer):

    atn = ATNDeserializer().deserialize(serializedATN())

    decisionsToDFA = [ DFA(ds, i) for i, ds in enumerate(atn.decisionToState) ]

    ADD = 1
    ADDI = 2
    SUB = 3
    SUBI = 4
    MUL = 5
    DIV = 6
    MAC = 7
    INC = 8
    LLS = 9
    LRS = 10
    OR = 11
    AND = 12
    XOR = 13
    NOT = 14
    FADD = 15
    FSUB = 16
    FMUL = 17
    FDIV = 18
    FMAC = 19
    BEQ = 20
    MOV = 21
    MUL_CONST_ADD = 22
    LOAD = 23
    STORE = 24
    ENTRY = 25
    ENTRY_ARROW = 26
    RIGHT_ARROW = 27
    IMM = 28
    MEM = 29
    DECIMAL_LITERAL = 30
    HEX_LITERAL = 31
    OCT_LITERAL = 32
    BINARY_LITERAL = 33
    FLOAT_LITERAL = 34
    HEX_FLOAT_LITERAL = 35
    BOOL_LITERAL = 36
    CHAR_LITERAL = 37
    STRING_LITERAL = 38
    TEXT_BLOCK = 39
    NULL_LITERAL = 40
    LPAREN = 41
    RPAREN = 42
    LBRACE = 43
    RBRACE = 44
    LBRACK = 45
    RBRACK = 46
    SEMI = 47
    COMMA = 48
    DOT = 49
    COLON = 50
    AND_PRED = 51
    OR_PRED = 52
    WS = 53
    COMMENT = 54
    LINE_COMMENT = 55
    IDENTIFIER = 56

    channelNames = [ u"DEFAULT_TOKEN_CHANNEL", u"HIDDEN" ]

    modeNames = [ "DEFAULT_MODE" ]

    literalNames = [ "<INVALID>",
            "'ADD'", "'ADDI'", "'SUB'", "'SUBI'", "'MUL'", "'DIV'", "'MAC'", 
            "'INC'", "'LLS'", "'LRS'", "'OR'", "'AND'", "'XOR'", "'NOT'", 
            "'FADD'", "'FSUB'", "'FMUL'", "'FDIV'", "'FMAC'", "'BEQ'", "'MOV'", 
            "'MUL_CONST_ADD'", "'LOAD'", "'STORE'", "'Entry'", "'=>'", "'->'", 
            "'IMM'", "'MEM'", "'null'", "'('", "')'", "'{'", "'}'", "'['", 
            "']'", "';'", "','", "'.'", "':'", "'!'", "'^'" ]

    symbolicNames = [ "<INVALID>",
            "ADD", "ADDI", "SUB", "SUBI", "MUL", "DIV", "MAC", "INC", "LLS", 
            "LRS", "OR", "AND", "XOR", "NOT", "FADD", "FSUB", "FMUL", "FDIV", 
            "FMAC", "BEQ", "MOV", "MUL_CONST_ADD", "LOAD", "STORE", "ENTRY", 
            "ENTRY_ARROW", "RIGHT_ARROW", "IMM", "MEM", "DECIMAL_LITERAL", 
            "HEX_LITERAL", "OCT_LITERAL", "BINARY_LITERAL", "FLOAT_LITERAL", 
            "HEX_FLOAT_LITERAL", "BOOL_LITERAL", "CHAR_LITERAL", "STRING_LITERAL", 
            "TEXT_BLOCK", "NULL_LITERAL", "LPAREN", "RPAREN", "LBRACE", 
            "RBRACE", "LBRACK", "RBRACK", "SEMI", "COMMA", "DOT", "COLON", 
            "AND_PRED", "OR_PRED", "WS", "COMMENT", "LINE_COMMENT", "IDENTIFIER" ]

    ruleNames = [ "ADD", "ADDI", "SUB", "SUBI", "MUL", "DIV", "MAC", "INC", 
                  "LLS", "LRS", "OR", "AND", "XOR", "NOT", "FADD", "FSUB", 
                  "FMUL", "FDIV", "FMAC", "BEQ", "MOV", "MUL_CONST_ADD", 
                  "LOAD", "STORE", "ENTRY", "ENTRY_ARROW", "RIGHT_ARROW", 
                  "IMM", "MEM", "DECIMAL_LITERAL", "HEX_LITERAL", "OCT_LITERAL", 
                  "BINARY_LITERAL", "FLOAT_LITERAL", "HEX_FLOAT_LITERAL", 
                  "BOOL_LITERAL", "CHAR_LITERAL", "STRING_LITERAL", "TEXT_BLOCK", 
                  "NULL_LITERAL", "LPAREN", "RPAREN", "LBRACE", "RBRACE", 
                  "LBRACK", "RBRACK", "SEMI", "COMMA", "DOT", "COLON", "AND_PRED", 
                  "OR_PRED", "WS", "COMMENT", "LINE_COMMENT", "IDENTIFIER", 
                  "ExponentPart", "EscapeSequence", "HexDigits", "HexDigit", 
                  "Digits", "LetterOrDigit", "Letter" ]

    grammarFileName = "EasyCGRALexer.g4"

    def __init__(self, input=None, output:TextIO = sys.stdout):
        super().__init__(input, output)
        self.checkVersion("4.13.2")
        self._interp = LexerATNSimulator(self, self.atn, self.decisionsToDFA, PredictionContextCache())
        self._actions = None
        self._predicates = None


